Random numbers or pseudo-random numbers may be used in a wide field of applications in modern technology, for instance, in the field of test systems, cryptography, numerical simulation and the generation of noise signals, to name but a few. Random numbers or pseudo-random numbers may technically be generated by a true random number generator or a pseudo-random number generator, respectively.
While a true pseudo-random number generator typically employs physical, real source of randomness, a pseudo-random number generator typically does not employ an element showing a statistical true randomness. Examples of such elements are, for instance, electric resistors with Nyquist noise, electrical tunneling elements or elements based on radio active decay with a shot noise behavior or closed feedback loops employing the feedback signal as the noise source to name but a few.
Pseudo-random number generators typically do not employ such elements of true randomness but are based on a deterministic behavior such that the numbers generated by a pseudo-random number generator are not true random numbers.
Thus, true random number generators and pseudo-random number generators are utilized whenever a random or pseudo-random value is important or advisable to be used in a field of application, such as the examples mentioned above.
Pseudo-random number generators, compared to true random number generators, typically allow a faster generation of the numbers, are very often more easily to implement and show a lower energy consumption than corresponding true random number generators. However, since the pseudo-random number generators are deterministic systems, the generated numbers may be calculated based on the knowledge of the inner structure of a pseudo-random number generator and the knowledge of a state of it. This may be a disadvantage under some circumstances but may be desired under other circumstances, when, for instance, a periodic behavior or reproducibility may be important in some applications.
In digital implementations or applications the pseudo-random numbers generated by a pseudo-random number generator typically comprise digital or binary units. Depending on the concrete implementation, a pseudo-random number generator may, in such a case, provide a pseudo-random bit stream comprising a sequence of individual bits or a pseudo-random word stream comprising a sequence of words. Each word typically comprises a plurality of bits, e.g. 4 bits, 6 bits, 8 bits, 16 bits, 32 bits or the like. In other words, a word of a word stream typically comprises a plurality of bits and the word may be considered as a part of a sequence of pseudo-random bits. Therefore, in many applications, a pseudo-random bit stream and a pseudo-random word stream may be derived from each other.